This invention relates to reducing quantization effects of a decoded image. The invention is particularly useful for, but not necessarily limited to, reducing quantization effects of decoded images that were previously coded by Discrete Cosine Transformation (DCT).
Most existing image and video coding standards such as H.261, H.263 and MPEG for example are typically based upon hybrid block coding algorithms. These algorithms incorporate transformations (such as the Discrete Cosine Transform (DCT)) and various quantization methods. The lossy nature of the quantization methods employed within a block based coding architecture introduces into a decoded image unwanted artifacts which impinge upon the quality of the reconstructed image.
Examples of such artifacts which may be introduced are blocking artifacts and ringing artifacts. The blocking artifact is characterized by the appearance of block edge effects and a visible discontinuity between adjacent blocks, especially in areas of low detail within the image. Generally blocking occurs when coarse quantization levels are used to code DCT coefficients. Ringing is generally distortion appearing near strong edges in an image due to the truncation of high spatial frequencies by the Quantization process. In moving images ringing is visible as a slight flickering near the image edges
There are various techniques to reduce the effects of ringing introduced in block coding schemes. One such example is described in U.S. Pat. No. 5,819,035 to Devaney et al. entitled xe2x80x9cPost-Filter for removing ringing artifacts of DCT codingxe2x80x9d. The disclosed post-filter primarily uses anisotropic diffusion to remove the ringing artifacts from the decoded data images. The filter processes individual blocks of pixels, assigning an individual edge significance threshold to each block. Noise removal occurs if the edge strength is below the threshold.
Another example is contained in International Patent Publication No. WO 99/22509 in the name of Samsung Electronics Co., Ltd. entitled xe2x80x9cImage data post-processing method for reducing quantization effect, apparatus thereforexe2x80x9d. This publication discloses an image data post-processing method for reducing quantization effects such as blocking artifacts, corner outliers and ringing noise, from a decompressed image. The method involves the detection of a semaphore which represents whether or not post-processing is required and only filtering those decoded image blocks for which the corresponding semaphore has been signaled.
An article in Electronics Letters, vol. 34, no. 22, pp. 2110-2112, October 1998 addressing the use of a de-ringing filter in video communications by Dr Andrxc3xa9 Kaup entitled xe2x80x9cReduction of ringing noise in transform image coding using a simple adaptive filterxe2x80x9d discloses a de-ringing filter which is constructed from an adaptive low pass filter where the filter mask varies depending upon the local image characteristics. The filter is adaptive in two ways. First only those neighboring pixels wherein their corresponding grey levels are within a certain confidence interval around the pixel to be filtered are included in the filter mask. Secondly the filter mask is strictly local since only the pixels within a 3xc3x973 window around the current pixel are considered.
The MPEG-4 Verification Model, as set out in ISO/IEC JTC 1/SC 29/WG 11 N4350, Sydney, July 2001, includes a de-ringing algorithm. This algorithm has heretofore been considered as xe2x80x9cbest in classxe2x80x9d for de-ringing of coded video. The algorithm performs de-ringing at a macro-block level each macro-block needs to be read in from memory and processed in turn.
Each of above disclose various forms of de-ringing algorithms that employ various object edge detection methods, such as selecting threshold values having a linear relationship with the quantization parameters used during decoding, to determine which pixels require post process filtering to eliminate ringing artifacts.
In this specification, including the claims, the terms xe2x80x98comprisesxe2x80x99, xe2x80x98comprisingxe2x80x99 or similar terms are intended to mean a non-exclusive inclusion, such that a method or apparatus that comprises a list of elements does not include those elements solely, but may well include other elements not listed.
According to one aspect of the invention there is provided a method for reducing quantization effects of a decoded image, the method comprising the steps of:
receiving at least part of a decoded image comprising decoded blocks that were decoded from transform coded blocks quantized by a selected quantization parameter;
analyzing selected pixel values of selected pixels with neighboring pixel values of associated neighboring pixels in said decoded blocks to determine difference values for each of said selected pixels;
detecting potential object edges, of the decoded image represented by the decoded blocks, to identify said selected pixels as edge pixels, said detecting being effected by comparing said difference values with selected threshold values that are determined with respect to said selected quantization parameter associated with a selected one of said blocks, said selected threshold values having a non-linear relationship with varying quantization parameter values of said image; and
modifying said selected pixel values of said selected pixels that are identified as not being edge pixels.
Suitably, the analyzing step may comprise selecting three by three pixel arrays and comparing only said selected pixel values that are associated with a central pixel of each of said arrays with said neighboring pixel values of only said neighboring pixels that are adjacent to and either aligned directly vertical with or horizontal with said central pixel.
Preferably, the detecting step may be characterized by said comparing comprising a first comparison with respect to first threshold value, and wherein the detecting step further includes a second comparison with respect to second threshold value wherein pairs of said directly aligned vertical pixels adjacent said central pixel and pairs of said directly aligned horizontal pixels adjacent said central pixel are compared with respect to second threshold value.
The first threshold value and second threshold value may preferably have a non-linear relationship with respect to each other for varying quantization parameter values of said image.
Suitably, the selected threshold values may be retrieved from a look-up table containing values for respective quantization parameter values.
Preferably, the modifying step may include modifying at least some of said selected pixel values based on values of at least some of said neighboring pixel values in said three by three array.
Suitably, the modifying step may further include modifying least some of said selected pixel values by addition of a value thereto that is related to the selected quantization parameter.
Preferably, the modifying step may comprise:
calculating a new pixel value for a selected pixel that is identified as not being an edge pixel; and
limiting a maximum difference between the new pixel value and original value of said selected pixel such that said maximum difference is no greater than said quantization parameter.
The method may preferably further include a subsequent step of providing to a display said decoded image with pixel values that have been modified by the modifying step.
Alternatively, according to another form of the invention there is provided a decoder system for reducing quantization effects of a decoded image, the system comprising:
a receiver module with an output coupled to a decoding module;
a de-ringing module coupled to an output of the decoding module;
a processors coupled to the de-ringing modules, wherein in use the de-ringing module receives at least part of a decoded image, decoded by the decoding module, comprising decoded blocks that were decoded from transform coded blocks quantized by a selected quantization parameter; the de-ringing module then analyzes selected pixel values of selected pixels with neighboring pixel values of associated neighboring pixels in said decoded blocks to determine difference values for each of said selected pixels; the de-ringing module then detects potential object edges, of the decoded image represented by the decoded blocks, to identify said selected pixels as edge pixels, said detecting being effected by comparing said difference values with selected threshold values that are determined with respect to said selected quantization parameter associated with a selected one of said blocks, said selected threshold values having a non-linear relationship with varying quantization parameter values of said image; and then the de-ringing module modifies said selected pixel values of said selected pixels that are identified as not being edge pixels.
Suitably, the de-ringing module can be coupled to an output of the decoding module via a de-blocking module.
Preferably, the de-ringing module may analyze the selected pixel values by selecting three by three pixel arrays and comparing only said selected pixel values that are associated with a central pixel of each of said arrays with said neighboring pixel values of only said neighboring pixels that are adjacent to and either aligned directly vertical with or horizontal with said central pixel.
The de-ringing module may, in use, detect potential object edges by a first comparison with respect to first threshold value and a second comparison with respect to second threshold value wherein pairs of said directly aligned vertical pixels adjacent said central pixel and pairs of said directly aligned horizontal pixels adjacent said central pixel are compared with respect to second threshold value.
Suitably, the first threshold value and second threshold value may have a non-linear relationship with respect to each other for varying quantization parameter values of said image.
Preferably, the selected threshold values may be retrieved from a look-up table containing values for respective quantization parameter values.